

#pragma once


#include "PtrFuncEnums.h"
class IPtrFunc;

enum E_PROCESS_TYPE
{
	eTEST_1,
	eTEST_2,
	eTEST_3,
};

class IPtrFunc;

typedef std::map<E_PTRFUNC_HEADER, IPtrFunc*> MAP_PROCESS;
class ProcessFactory
{
public:
	ProcessFactory(){}
	~ProcessFactory(){}

	void Create(const E_PROCESS_TYPE& eType);
	bool Register();
	bool Excute(const DWORD& index, const DWORD& dummy1, const DWORD& dummy2, const DWORD& dummy3);
	void Destroy();

private:
	void CreateTest1();
	void CreateTest2();
	void CreateTest3();
	
	IPtrFunc* Factory(const E_PTRFUNC_HEADER& eHeader);

	MAP_PROCESS m_mapProcess;
};